{ "cells": [ { "cell_type": "markdown", "id": "f0f8fd17-b009-4279-bf25-e911eb645ada", "metadata": {}, "source": [ "# DAM-only Price-Quantity Example" ] }, { "cell_type": "code", "execution_count": 1, "id": "f475f84e-483e-4744-91e1-262fe4b7cbe3", "metadata": { "tags": [] }, "outputs": [], "source": [ "import generation_models as gm\n", "from tyba_client.client import Client\n", "import numpy as np\n", "import pandas as pd\n", "import os" ] }, { "cell_type": "code", "execution_count": 2, "id": "c2b80fd2-f3a6-4fe2-b5ba-cc4a4b1e702d", "metadata": { "tags": [] }, "outputs": [], "source": [ "client = Client(os.environ[\"TYBA_PAT\"])" ] }, { "cell_type": "code", "execution_count": 5, "id": "2d32e6cc-0981-4856-aaaa-286ce823cf07", "metadata": { "tags": [] }, "outputs": [], "source": [ "hours = 48\n", "n = 3\n", "\n", "model = gm.StandaloneStorageModel(\n", " energy_prices=gm.DARTPriceScenarios(\n", " rtm=np.random.random((n, hours)).tolist(),\n", " dam=np.random.random((n, hours)).tolist(),\n", " weights=[0.3, 0.2, 0.5], # probability of each scenario\n", " ),\n", " project_term=48,\n", " project_term_units=\"hours\",\n", " storage_inputs=gm.MultiStorageInputs(\n", " batteries=[gm.BatteryParams(\n", " power_capacity=1e3,\n", " energy_capacity=2 * 1e3 / 0.95,\n", " discharge_efficiency=0.95,\n", " charge_efficiency=0.95,\n", " degradation_rate=0.0,\n", " )],\n", " energy_strategy=gm.MarketConfig(\n", " da=gm.BidOfferStrategy.price_quantity, # Makes DAM price-quantity\n", " rt=None # Makes RTM cover DAM with quantity-only\n", " ),\n", " ),\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "id": "b5b94b7a-fb6c-4f04-9073-e276d34ee681", "metadata": { "tags": [] }, "outputs": [], "source": [ "resp = client.schedule(model)\n", "resp.raise_for_status()\n", "id_ = resp.json()[\"id\"]" ] }, { "cell_type": "code", "execution_count": 12, "id": "c68d5c96-e6d2-4b53-a889-950a5e84bf0b", "metadata": { "tags": [] }, "outputs": [], "source": [ "res = pd.DataFrame(client.wait_on_result(id_))" ] }, { "cell_type": "code", "execution_count": 17, "id": "2e4569a6-62e9-4fc9-9f4f-bac72fe25b40", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", " | dam_discharge_offer_quantity | \n", "dam_charge_offer_quantity | \n", "dam_discharge_offer_price | \n", "dam_charge_offer_price | \n", "rtm_discharge | \n", "rtm_charge | \n", "
---|---|---|---|---|---|---|
0 | \n", "1.890044e-13 | \n", "216.066482 | \n", "1.000000e+06 | \n", "1.000000e+06 | \n", "1.890044e-13 | \n", "216.066482 | \n", "
1 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "7.614937e-01 | \n", "7.614917e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
2 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "6.186046e-01 | \n", "1.806109e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
3 | \n", "8.050000e+02 | \n", "0.000000 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "8.050000e+02 | \n", "0.000000 | \n", "
4 | \n", "1.000000e+03 | \n", "0.000000 | \n", "5.573063e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
5 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "8.407292e-01 | \n", "8.407272e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
6 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "6.272627e-01 | \n", "6.272607e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
7 | \n", "1.000000e+03 | \n", "0.000000 | \n", "5.772265e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
8 | \n", "1.000000e+03 | \n", "0.000000 | \n", "7.198444e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
9 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "3.872528e-01 | \n", "3.872518e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
10 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "5.584570e-01 | \n", "5.584550e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
11 | \n", "8.050000e+02 | \n", "0.000000 | \n", "5.767334e-01 | \n", "0.000000e+00 | \n", "8.050000e+02 | \n", "0.000000 | \n", "
12 | \n", "1.000000e+03 | \n", "0.000000 | \n", "8.582361e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
13 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "9.585975e-01 | \n", "6.349638e-02 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
14 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "7.119654e-01 | \n", "7.119644e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
15 | \n", "1.000000e+03 | \n", "0.000000 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
16 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "9.535452e-01 | \n", "1.931478e-02 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
17 | \n", "0.000000e+00 | \n", "324.099723 | \n", "8.397077e-01 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "324.099723 | \n", "
18 | \n", "1.000000e+03 | \n", "0.000000 | \n", "4.216720e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
19 | \n", "8.050000e+02 | \n", "0.000000 | \n", "4.078660e-01 | \n", "0.000000e+00 | \n", "8.050000e+02 | \n", "0.000000 | \n", "
20 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "5.187792e-01 | \n", "5.483235e-02 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
21 | \n", "1.000000e+03 | \n", "0.000000 | \n", "7.054114e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
22 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "4.819512e-01 | \n", "4.819502e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
23 | \n", "1.000000e+03 | \n", "0.000000 | \n", "3.470233e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
24 | \n", "1.890044e-13 | \n", "216.066482 | \n", "1.000000e+06 | \n", "2.647129e-01 | \n", "1.890044e-13 | \n", "216.066482 | \n", "
25 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "7.581790e-01 | \n", "1.499880e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
26 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "5.931051e-01 | \n", "8.834203e-02 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
27 | \n", "1.000000e+03 | \n", "0.000000 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
28 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "9.152580e-01 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
29 | \n", "8.050000e+02 | \n", "0.000000 | \n", "3.562025e-01 | \n", "0.000000e+00 | \n", "8.050000e+02 | \n", "0.000000 | \n", "
30 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "4.023107e-01 | \n", "1.000000e+06 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
31 | \n", "1.000000e+03 | \n", "0.000000 | \n", "4.495349e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
32 | \n", "9.025000e+02 | \n", "0.000000 | \n", "7.346889e-01 | \n", "0.000000e+00 | \n", "9.025000e+02 | \n", "0.000000 | \n", "
33 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "9.393563e-01 | \n", "9.393543e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
34 | \n", "1.000000e+03 | \n", "0.000000 | \n", "8.192541e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
35 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "4.557418e-01 | \n", "7.916343e-02 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
36 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "1.523515e-01 | \n", "1.000000e+06 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
37 | \n", "1.000000e+03 | \n", "0.000000 | \n", "5.690975e-01 | \n", "5.690965e-01 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
38 | \n", "5.125000e+02 | \n", "0.000000 | \n", "5.343337e-01 | \n", "0.000000e+00 | \n", "5.125000e+02 | \n", "0.000000 | \n", "
39 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "7.018872e-01 | \n", "7.018852e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
40 | \n", "1.000000e+03 | \n", "0.000000 | \n", "3.534662e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
41 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "9.564798e-01 | \n", "1.583405e-02 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
42 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "5.455405e-01 | \n", "5.455385e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
43 | \n", "9.025000e+02 | \n", "0.000000 | \n", "4.851630e-01 | \n", "0.000000e+00 | \n", "9.025000e+02 | \n", "0.000000 | \n", "
44 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "8.337567e-01 | \n", "8.337547e-01 | \n", "0.000000e+00 | \n", "1000.000000 | \n", "
45 | \n", "1.000000e+03 | \n", "0.000000 | \n", "7.589748e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
46 | \n", "1.000000e+03 | \n", "0.000000 | \n", "6.131428e-01 | \n", "0.000000e+00 | \n", "1.000000e+03 | \n", "0.000000 | \n", "
47 | \n", "0.000000e+00 | \n", "0.000000 | \n", "6.833991e-01 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "0.000000 | \n", "